CSE 3541/5541 Computer Game and Animation Techniques
Overview
This course acts as an introduction to the areas of computer graphics, computer games, and computer animation
and is a prerequisite to CSE capstone design courses in game development and animation.
We will examine algorithms and data structures in several areas: foundations of computer graphics, rendering, procedural animation (physics and AI), interpolation, and select specialized topics.
As one of the core-choice application courses, you will gain experience in event-driven programming and graphics-based applications and user interfaces.
Projects/Labs
The main work in this class involves writing a series of small programs that implement a variety of basic techniques, each related to one of the topic areas listed above.
You will use Unity/C# on your own machines.
Instructor:
Roger Crawfis ( crawfis.3@osu.edu ) - Do not add buckeyemail!
Office: DL683
Office hours: Tuesdays 1-2pm and Thursday 5:10-6:00 if needed / by appointment ; finals week office hours by appointment only
Graduate TA:
Xi Chen (.10183)
Office: Baker Systems 406
Office hours: TR 12:30-2:00pm, and by appointment
Undergrad helper (previously has taken this course):
(TBD)
General Course Information
Pre-requisites
CSE 3901 or CSE 3902 or 3903
Anyone taking this class should be a competent programmer and know the basics of 3D Euclidean geometry. It also helps if you are familiar with basic linear algebra.
The stronger programmer you are, the more graphics experience you have, and the more math you know, the better off you'll be.
Class Attendance
Attendance will be taken during the first week, as part of handling enrollment adds and drops.
Most, but not all, of the information covered in class meetings can be found in the reference books or on the web - but you are responsible for anything discussed in class.
If you miss a class, get notes from someone who attended.
Disability Statement
Any student who feels they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. The Office for Disability Services will help in coordinating reasonable accommodations for students with documented disabilities.
Texts
The class schedule spreadsheet includes listings of chapters from the various books that are most relevant for each class meeting.
Primary reference (Needs fixed)
Safari (O'Reilly Learning link)
https://www.oreilly.com/library/view/temporary-access/. Use "Not listed? Click Here" - top entry and sign in with your OSU email.
Secondary texts by category
- Computer Graphics
- Interactive Computer Graphics: A Top-down Approach Using OpenGL amazon - commonly used in CSE 5542
- Computer Graphics: Principles and Practice find 3rd edition on safari ebooks - recommended as your introduction to computer graphics
- Fundamentals of Computer Graphics find 4th edition on safari ebooks - excellent reference material, not necessarily the best introduction to computer graphics
- Math
- Game AI
- Unity and C# texts listed as a docx file - most of these are written more for artists, designers, or novice programmers, but you may still find some useful tips if you have enough spare time to look through them
Autumn 2021 course notes and materials
Class Schedule (last update: 12-09-2021)
Lecture Notes
Assignments as they become available
- Lab1 - Setting up Unity, input systems and movement / positioning with vectors.
- Due: Tuesday, September 7, 2021 at 11:59pm (23:59 hours) EDT
- Peer Review due Tuesday, September 14, 2021 before class.
- Lab2 -Maze creation
- Due: Thursday, September 23, 2021 at 11:59pm (23:59 hours) EDT
- Peer Review due Tuesday, September 28, 2021 before class.
- Lab3 - Putting it together, walking through your maze with a first-person camera
- Due: Thursday, October 7, 2021 at 11:59pm (23:59 hours) EDT
- Peer Review due Tuesday, October 12, 2021 before class.
- Lab4 - Lighting in Unity
- Due: Tuesday, October 26, 2021 at 11:59pm (23:59 hours) EDT
- Peer Review due Sunday, October 31, 2021.
- Lab5 - AI agents
- Example - Steering Agents - Predator/Prey Simulation by Aaron Benson
- Due: Tuesday, November 9, 2021 at 11:59pm (23:59 hours) EST
- Peer Review due Sunday, November 14, 2021.
- Lab6 - Character Animation
- Unity package from Prof. Huamin Wang
- Due: Tuesday, November 23, 2021 at 11:59pm (23:59 hours) EST
- Peer Review due Sunday, November 28, 2021.
- Lab7 - Final Project
- Proposal Due: Wednesday, November 24, 2021 at 11:59pm (23:59 hours) EST
- Peer Review on Proposals due Monday, November 29, 2021.
- Video #1 due: December 2, 2021 at 2:00pm (14:00)
- Final Presentation: December 7 and 10, 2021 in class
Resources
Unity Assets
- https://assetstore.unity.com/packages/3d/props/exterior/polygon-prototype-low-poly-3d-art-by-synty-137126
- https://assetstore.unity.com/packages/3d/props/polygon-starter-pack-low-poly-3d-art-by-synty-156819 (Free)
- https://assetstore.unity.com/packages/2d/textures-materials/gridbox-prototype-materials-129127 (Free)
- https://assetstore.unity.com/packages/3d/environments/bblock-61644
YouTube (Unity)
- Jason Weimann – Angry Birds tutorial (2D): https://www.youtube.com/watch?v=Lu76c85LhGY
- Brackeys – Path Dash tutorial (old input system): https://www.youtube.com/playlist?list=PLPV2KyIb3jR5QFsefuO2RlAgWEz6EvVi6
- Input System: https://unity.com/features/input-system and https://www.youtube.com/watch?v=5tOOstXaIKE
- Why use Unity Input System: https://www.youtube.com/watch?v=GyKBoDF_Oxo
- SamYam - Input System playlist: https://www.youtube.com/playlist?list=PLKUARkaoYQT2nKuWy0mKwYURe2roBGJdr
- Unity Learn – Junior Programmer: https://learn.unity.com/pathway/junior-programmer
- Unity Scripting (and basic C#): https://www.youtube.com/playlist?list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B
- Custom Inspector and Attributes: https://www.youtube.com/watch?v=9udeBeQiZSc
YouTube (Math)
- https://www.youtube.com/watch?v=e3z91RqZPAk&list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B&index=9
- https://www.youtube.com/watch?v=32JkMANaMpk&list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B&index=12
- http://s2.smu.edu/propulsion/Pages/vector.html
- https://www.youtube.com/watch?v=MOYiVLEnhrw
-
Mixamo
- SamYam: https://www.youtube.com/watch?v=583R9LgRZPA
-
YouTube (AI and others)
- Classes in Unity: https://www.youtube.com/watch?v=odKtPBsyFnw&list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B&index=21
- Imphenzia – Key Frame Animation: https://www.youtube.com/watch?v=yjjLD3h3yRc
- Imphenzia – Create a Low Poly Character in Blender: https://www.youtube.com/watch?v=eBOcbYHexAM
-